package Project;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.IOException;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.TreeSet;
/**
* The class Interface represents the class that creates the user interface. It
* displays several labels and text fields on a JPanel using a GridBaglayout and
* has a Jmenu. It extends JFrame and implements ActionListener
*/
public class Interface extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
private JButton start = new JButton("OK");
private JLabel L1 = new JLabel("Client name");
private JLabel L2 = new JLabel("Address");
private JLabel L3 = new JLabel("Product");
private JLabel L4 = new JLabel("Quantity");
private JPanel pane = new JPanel(new GridBagLayout());;
private TextField tt11 = new TextField(10);
private TextField tt12 = new TextField(10);
private TextArea info = new TextArea("", 10, 80, TextArea.SCROLLBARS_BOTH);
private static InterfaceProducts warehouse = new InterfaceProducts();
private boolean display1 = true;
private JScrollPane scrollPane;
private static JComboBox choice1 = new JComboBox();
private TextField choice2 = new TextField(10);
private OPDept departament = new OPDept();
static String message = "";
private Object[][] data2 = new Object[100][7];
private String[] columnNames = { "Order number", "TotalPrice", "Client name", "C Addr", "Product", "amount",
"price" };
private JTable table2;
/**
* constructor- display user interface
*/
public Interface() {
departament = (OPDept) IOClass.loadInfo("dat2.dat");
warehouse.loadWarehouse();
if (departament == null)
departament = new OPDept();
if (warehouse == null)
warehouse = new InterfaceProducts();
this.setSize(1400, 1200);
getContentPane().add(pane);
GridBagConstraints c = new GridBagConstraints();
pane.setLayout(new GridBagLayout());
c.gridx = 0;
c.gridy = 0;
c.fill = GridBagConstraints.BOTH;
c.anchor = GridBagConstraints.CENTER;
pane.add(L1, c);
c.gridx = 1;
c.gridwidth = 2;
pane.add(tt11, c);
c.gridwidth = 1;
c.gridy = 1;
c.gridx = 0;
pane.add(L2, c);
c.gridx = 1;
c.gridwidth = 2;
pane.add(tt12, c);
c.gridy = 2;
c.gridx = 0;
c.gridwidth = 1;
pane.add(L3, c);
c.gridx = 1;
c.gridwidth = 2;
choice1.addActionListener(this);
pane.add(choice1, c);
c.gridy = 3;
c.gridx = 0;
c.gridwidth = 1;
pane.add(L4, c);
c.gridx = 1;
c.gridwidth = 2;
pane.add(choice2, c);
c.gridwidth = 1;
c.gridy = 6;
c.gridx = 1;
pane.add(start, c);
start.addActionListener(this);
c.gridwidth = 6;
c.gridy = 7;
c.gridx = 0;
pane.add(info, c);
// Create the menu bar.
this.setJMenuBar(this.createMenuBar());
// table 1
c.gridwidth = 6;
c.gridy = 8;
c.gridx = 0;
init();
initializeTable();
table2.setPreferredScrollableViewportSize(new Dimension(500, 70));
table2.setFillsViewportHeight(true);
// Create the scroll pane and add the table to it.
scrollPane = new JScrollPane(table2);
scrollPane.setVisible(display1);
// Add the scroll pane to this panel.
pane.add(scrollPane, c);
// table 2
c.gridwidth = 6;
c.gridy = 8;
c.gridx = 0;
OPDept oop = new OPDept();
}
public static void refreshStock() {
init();
}
public static void init() {
choice1.removeAllItems();
TreeSet<Product> c = (TreeSet<Product>) warehouse.getProducts();
Object[] objArray = c.toArray();
Product aux = null;
int i = 0;
for (Object obj : objArray) {
aux = (Product) obj;
choice1.addItem(aux);
i++;
}
}
public void initializeTable() {
TreeSet<Order> c = (TreeSet<Order>) departament.getOrders();
Object[] objArray = c.toArray();
Order aux;
int i = 0;
String s1 = "", s2, s3;
Integer a, c1, d;
Integer b;
int test = 0;
for (Object obj : objArray) {
aux = (Order) obj;
a = aux.getNrOrder();
s1 = aux.getClient().getName();
s2 = aux.getClient().getAddress();
s3 = aux.getProduct().getName();
b = aux.getProduct().getPrice();
c1 = aux.getProduct().getAmount();
d = aux.getCost();
data2[i][0] = new Integer(a);
data2[i][1] = new Integer(d);
data2[i][2] = new String(s1);
data2[i][3] = new String(s2);
data2[i][4] = new String(s3);
data2[i][5] = new Integer(c1);
data2[i][6] = new Integer(b);
i++;
}
table2 = new JTable(data2, columnNames);
repaint();
validate();
}
public JMenuBar createMenuBar() {
JMenuBar menuBar;
JMenu menu, submenu;
JMenuItem menuItem;
menuBar = new JMenuBar();
menu = new JMenu("Options");
menu.setMnemonic(KeyEvent.VK_A);
menu.getAccessibleContext().setAccessibleDescription("The only menu in this program that has menu items");
menuBar.add(menu);
menuItem = new JMenuItem("Save products");
menuItem.setMnemonic(KeyEvent.VK_T);
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_1, ActionEvent.ALT_MASK));
menuItem.setActionCommand("sprod");
menuItem.addActionListener(this);
menu.add(menuItem);
menuItem = new JMenuItem("Save orders");
menuItem.setMnemonic(KeyEvent.VK_T);
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_1, ActionEvent.ALT_MASK));
menuItem.setActionCommand("sord");
menuItem.addActionListener(this);
menu.add(menuItem);
menuItem = new JMenuItem("Introduce products");
menuItem.setMnemonic(KeyEvent.VK_T);
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_1, ActionEvent.ALT_MASK));
menuItem.addActionListener(this);
menuItem.setActionCommand("admin");
menu.add(menuItem);
menuItem = new JMenuItem("Exit");
menuItem.setMnemonic(KeyEvent.VK_T);
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_1, ActionEvent.ALT_MASK));
menuItem.addActionListener(this);
menuItem.setActionCommand("exit");
menu.add(menuItem);
return menuBar;
}
private Product p = null;
/**
* action performed - deal with events
*/
public void actionPerformed(ActionEvent event) {
Object source = event.getSource();
if (source == choice1) {
JComboBox cb = (JComboBox) event.getSource();
p = (Product) cb.getSelectedItem();
System.out.println("SELECTED" + p);
start.setEnabled(!warehouse.getProducts().isEmpty());
}
if (source == start) {
String s1 = tt11.getText();
String s2 = tt12.getText();
String s3 = choice2.getText();
int a = 0;
if ((s1 != null) && (s2 != null) && (s3 != null)) {
try {
a = Integer.parseInt(s3);
} catch (NumberFormatException e2) {
a = 0;
}
System.out.println("Sent ORDER " + s1 + s2 + a + p);
}
TreeSet<Product> aux2 = new TreeSet<Product>();
aux2 = (TreeSet<Product>) departament.processOrder((TreeSet<Product>) warehouse.getProducts(), p, a, s1,
s2);
warehouse.setProducts((TreeSet<Product>) aux2);
init();
start.setEnabled(!warehouse.getProducts().isEmpty());
info.append(message);
initializeTable();
repaint();
validate();
}
String ss = event.getActionCommand();
System.out.println(ss);
if (ss != null) {
if (ss.equals("sprod")) {
warehouse.saveWarehouse();
}
;
if (ss.equals("exit"))
System.exit(0);
if (ss.equals("sord"))
//if (admin.checkUser()) {
IOClass.saveInfo(departament, "dat2.dat");
//} else {
//JOptionPane.showMessageDialog(null, "Incorrect password!");
//}
if (ss.equals("admin")) {
System.out.println("aici");
AdminGUI admin = new AdminGUI();
if (admin.checkUser()) {
warehouse.displayInterface();
} else {
JOptionPane.showMessageDialog(null, "Incorrect password!");
}
}
}
}
}